import moment from 'moment';
const authMeb = (peo, member, pro) => {
  // 基本信息、费用信息、项目材料、成本支出、成员信息、人力信息、删除、修改
  let auth = [0, 0, 0, 0, 0, 0, 0, 0];
  // 过滤成员
  let lmeb = [];
  // 无参与时间 Del
  member.map(meb => {
    if (meb.joinTime !== null) {
      // 无离开时间 AddTime
      if (meb.quitTime === null) {
        lmeb.push({
          userId: meb.userId,
          role: meb.role,
          jobs: meb.jobs,
          quitTime: moment(pro.cycleEnd).format('YYYY-MM-DD')
        });
      } else { // 有参与、离开时间 Push
        lmeb.push({
          userId: meb.userId,
          role: meb.role,
          jobs: meb.jobs,
          quitTime: moment(meb.quitTime).format('YYYY-MM-DD')
        });
      }
    }
  });

  let tJobs = [];

  // 判断是否设置成员
  if (lmeb.length > 0) {
    // 匹配当前登录人的Jobs
    lmeb.map(meb => {
      if (meb.userId === peo) {
        meb.quitTime = Number(new Date(meb.quitTime));
        tJobs.push(meb);
      } else {
        if (peo.indexOf('TEST') > -1 || peo.indexOf('CJR') > -1) {
          tJobs.push({
            userId: peo,
            role: '系统管理员',
            jobs: '系统管理员',
            quitTime: Number(new Date(moment(pro.cycleEnd).format('YYYY-MM-DD')))
          });
        }
      }
    });
  } else {
    if (peo === pro.mgUserId || peo.indexOf('TEST') > -1) {
      tJobs.push({
        userId: peo,
        role: '项目经理',
        jobs: '项目经理',
        quitTime: Number(new Date(moment(pro.cycleEnd).format('YYYY-MM-DD')))
      });
    }
  }

  if (tJobs.length > 1) {
    // 获取当前登录人最后的的离开时间
    tJobs.sort((a, b) => { return b.quitTime - a.quitTime; });
    auth = taut(tJobs[0]);
  } else {
    auth = taut(tJobs[0]);
  }
  return auth;
};

const taut = (val) => {
  let auths = [];
  if (val.jobs === 'XS-交付经理' || val.jobs === 'YF-项目经理' || val.jobs === 'YF-业务线负责人') {
    auths = [1, 0, 0, 1, 1, 1, 0, 0];
  }
  if (val.jobs === 'XS-交付助理' || val.jobs === '系统管理员' || val.role === '项目经理') {
    auths = [1, 1, 1, 1, 1, 1, 1, 1];
  } else {
    auths = [0, 0, 0, 0, 0, 0];
  }
  return auths;
};

export default authMeb;
